{$CLEO .cs}
THREAD 'SPM'

04ED: load_animation "GRENADE"

REPEAT
WAIT 0
if 00E1:   player 0 pressed_key 17
JF CONTINUE
WHILE 00E1:   player 0 pressed_key 17
     WAIT 0
END

0812: AS_actor $player_actor perform_animation "WEAPON_THROW" "GRENADE" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time 400
Model.Load(1598)
03CF: load_wav 14407 as 1 
jump @SPH_10C8w 

:SPH_10C8w
wait 0 
if and
   Model.Available(1598)
03D0:   wav 1 loaded 
else_jump @SPH_10C8w 
04C4: store_coords_to 11@ 12@ 13@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 0.5 
1@ = Object.Create(1598, 11@, 12@, 13@)
2@ = Object.Create(#MISSILE, 11@, 12@, 13@)    
069A: attach_object 2@ to_object 1@ with_offset 0.0 0.0 0.0 rotation 0.0 0.0 90.0 
0750: set_object 1@ visibility 1 
04D9: object 1@ set_scripted_collision_check 1
Object.CollisionDetection(2@) = false 
Object.CollisionDetection(1@) = True
0906: set_object 1@ mass_to 30000.0 // float 
0908: set_object 1@ turn_mass_to 30000.0 // float 
Object.ToggleInMovingList(1@) = True
08D2: object 1@ scale_model 0.1 
19@ = Actor.Angle($PLAYER_ACTOR)
02F6: 15@ = sine 19@ // (float) 
02F7: 16@ = cosine 19@ // (float) 
16@ *= 60.0 
15@ *= 60.0 
0819: 18@ = actor $PLAYER_ACTOR distance_from_ground
18@ += 1.0 
15@ *= -1.0 
03D1: play_wav 1 
Object.Throw(1@, 15@, 16@, 18@)
Object.StorePos(1@, 7@, 8@, 9@)
jump @SPH_11ADw 

:SPH_11ADw
IF 03CA:   object 1@ exists 
THEN
Object.Throw(1@, 15@, 16@, 18@)
0400: store_coords_to 7@ 8@ 9@ from_object 1@ with_offset 0.0 0.0 0.0 
04D5: create_corona_at 7@ 8@ 9@ radius 0.5  3 flare 1 RGB 255 0 0 
09E5: create_flash_light_at 7@ 8@ 9@ RGB_mask 255 0 0 radius 200.0 
jump @SPH_1203w 

:SPH_1203w
wait 0 
Object.StorePos(1@, 7@, 8@, 9@)
if or
8474:   not actor $PLAYER_ACTOR near_object_in_cube 1@ radius 200.0 200.0 200.0 sphere 0 
04DA:   has_object 1@ collided 
else_jump @SPH_11ADw 
jump @SPH_1245w 

:SPH_1245w
040D: unload_wav 1 
Object.StorePos(1@, 7@, 8@, 9@)
Object.Destroy(1@)
Object.Destroy(2@)
0565: create_soundless_explosion_at 7@ 8@ 9@  0 
Model.Destroy(1598)
Model.Destroy(#MISSILE)
END                                                     
UNTIL FALSE